<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenLoong Dynamics Control: priority_tasks.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenLoong Dynamics Control
   &#160;<span id="projectnumber">v0.1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_692f640cc74363071c5c0e14282656e9.html">algorithm</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">priority_tasks.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">This is part of OpenLoong Dynamics Control, an open project for the control of biped robot,</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">Copyright (C) 2024 Humanoid Robot (Shanghai) Co., Ltd, under Apache 2.0.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">Feel free to use in any purpose, and cite OpenLoong-Dynamics-Control in any style, to contribute to the advancement of the community.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> &lt;https://gitee.com/panda_23/openloong-dyn-control.git&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> &lt;web@openloong.org.cn&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;Eigen/Dense&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;useful_math.h&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="structTask.html">   20</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structTask.html">Task</a></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structTask.html#a36551b2c460ad511f54cbf203e309917">   22</a></span>&#160;    std::string <a class="code" href="structTask.html#a36551b2c460ad511f54cbf203e309917">taskName</a>;                </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="structTask.html#a1bdc8139dd647f9701e9f43e588749d7">   23</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structTask.html#a1bdc8139dd647f9701e9f43e588749d7">id</a>;                              </div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structTask.html#a5590dd70434313e8f8e91444938121aa">   24</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structTask.html#a5590dd70434313e8f8e91444938121aa">parentId</a>,                        </div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structTask.html#a2fdbb8808a56ca96cbdec1a337bc5953">   25</a></span>&#160;        <a class="code" href="structTask.html#a2fdbb8808a56ca96cbdec1a337bc5953">childId</a>;                         </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structTask.html#af16fe27c5fb197cdca58d731444008fc">   26</a></span>&#160;    Eigen::VectorXd <a class="code" href="structTask.html#af16fe27c5fb197cdca58d731444008fc">dxDes</a>,               </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structTask.html#aacbb050b3a51a6a40fe7623ceb6240b8">   27</a></span>&#160;        <a class="code" href="structTask.html#aacbb050b3a51a6a40fe7623ceb6240b8">ddxDes</a>;                          </div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structTask.html#aa67cd59077f77263c12c0a63c7d6dd8b">   28</a></span>&#160;    Eigen::VectorXd <a class="code" href="structTask.html#aa67cd59077f77263c12c0a63c7d6dd8b">delta_q</a>,             </div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structTask.html#aff4c90e3b2dec84c5dd2ddfa602c3337">   29</a></span>&#160;        <a class="code" href="structTask.html#aff4c90e3b2dec84c5dd2ddfa602c3337">dq</a>,                              </div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structTask.html#a07b71cab2a0637fafa619210411e7e6b">   30</a></span>&#160;        <a class="code" href="structTask.html#a07b71cab2a0637fafa619210411e7e6b">ddq</a>;                             </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structTask.html#ab6d748e8c9848d62651c6f69959d44e1">   31</a></span>&#160;    Eigen::MatrixXd <a class="code" href="structTask.html#ab6d748e8c9848d62651c6f69959d44e1">J</a>,                   </div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structTask.html#af030b739b982580e161a18fd9781bc19">   32</a></span>&#160;        <a class="code" href="structTask.html#af030b739b982580e161a18fd9781bc19">dJ</a>,                              </div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structTask.html#a4a3821db687db14af77c7eeae7d6ba27">   33</a></span>&#160;        <a class="code" href="structTask.html#a4a3821db687db14af77c7eeae7d6ba27">Jpre</a>;                            </div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structTask.html#a3077b191fb5b8d5ace12c7222dae2490">   34</a></span>&#160;    Eigen::MatrixXd <a class="code" href="structTask.html#a3077b191fb5b8d5ace12c7222dae2490">N</a>;                   </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structTask.html#ab528b295f73bc2dcae252afe559d1a21">   35</a></span>&#160;    Eigen::MatrixXd <a class="code" href="structTask.html#ab528b295f73bc2dcae252afe559d1a21">kp</a>,                  </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structTask.html#a3b9e7af65942b491c076cc22de4f89d9">   36</a></span>&#160;        <a class="code" href="structTask.html#a3b9e7af65942b491c076cc22de4f89d9">kd</a>;                              </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structTask.html#a3ab283c32201b1d05812dfb66cc524d9">   37</a></span>&#160;    Eigen::DiagonalMatrix&lt;double, -1&gt; <a class="code" href="structTask.html#a3ab283c32201b1d05812dfb66cc524d9">W</a>; </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structTask.html#a95bd196967c9670c42cbcc4902dd6314">   38</a></span>&#160;    Eigen::MatrixXd <a class="code" href="structTask.html#a95bd196967c9670c42cbcc4902dd6314">errX</a>,                </div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structTask.html#ae935da3dcfe3783f5a5b4c1696e940be">   39</a></span>&#160;        <a class="code" href="structTask.html#ae935da3dcfe3783f5a5b4c1696e940be">derrX</a>;                           </div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    </div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structTask.html#a26c2d4aaae7802df6c392ef1b4d38ab0">   46</a></span>&#160;    <a class="code" href="structTask.html#a26c2d4aaae7802df6c392ef1b4d38ab0">Task</a>(std::string name) { <a class="code" href="structTask.html#a36551b2c460ad511f54cbf203e309917">taskName</a> = name; };</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classPriorityTasks.html">   48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classPriorityTasks.html">PriorityTasks</a></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;{</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a91a9d5cd5b5dd9224c8ac75673b96e00">   51</a></span>&#160;    std::vector&lt;Task&gt; <a class="code" href="classPriorityTasks.html#a91a9d5cd5b5dd9224c8ac75673b96e00">taskLib</a>;         </div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#ae91eaee730a601061f4f89a24c6e1836">   52</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classPriorityTasks.html#ae91eaee730a601061f4f89a24c6e1836">nameList</a>; </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#ac999a037ae8fe0b4f77acf3da58587ad">   53</a></span>&#160;    std::vector&lt;int&gt; <a class="code" href="classPriorityTasks.html#ac999a037ae8fe0b4f77acf3da58587ad">idList</a>,           </div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a79bdfa4a83aae2f3968b32c005f50423">   54</a></span>&#160;        <a class="code" href="classPriorityTasks.html#a79bdfa4a83aae2f3968b32c005f50423">parentIdList</a>,                  </div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a996beaefca8126343667cb80d5e0798b">   55</a></span>&#160;        <a class="code" href="classPriorityTasks.html#a996beaefca8126343667cb80d5e0798b">childIdList</a>;                   </div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#adae2ae0a7297db83c589f7b4d26cbe02">   56</a></span>&#160;    Eigen::VectorXd <a class="code" href="classPriorityTasks.html#adae2ae0a7297db83c589f7b4d26cbe02">out_delta_q</a>,       </div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a5400e52d0704615006046d3d8f0d028a">   57</a></span>&#160;        <a class="code" href="classPriorityTasks.html#a5400e52d0704615006046d3d8f0d028a">out_dq</a>,                        </div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a09f59b5e96992cea32ed2f6979b244c2">   58</a></span>&#160;        <a class="code" href="classPriorityTasks.html#a09f59b5e96992cea32ed2f6979b244c2">out_ddq</a>;                       </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classPriorityTasks.html#a035d4efdf1035ca2f94c83721e5b68c7">   59</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classPriorityTasks.html#a035d4efdf1035ca2f94c83721e5b68c7">startId</a>;                       </div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPriorityTasks.html#ad2ab5b914b5af26a9f6dafa3c77bcd70">addTask</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classPriorityTasks.html#a3a3ac349eeaae9f95e3f2efc25ece43a">getId</a>(<span class="keyword">const</span> std::string &amp;name);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classPriorityTasks.html#a3a3ac349eeaae9f95e3f2efc25ece43a">getId</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPriorityTasks.html#a7ce471672b0d7f93cc2ca457594e4695">buildPriority</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt; &amp;taskOrder);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPriorityTasks.html#ae7d53e762bf5f6481aa8af522430b3a4">computeAll</a>(<span class="keyword">const</span> Eigen::VectorXd &amp;des_delta_q, <span class="keyword">const</span> Eigen::VectorXd &amp;des_dq, <span class="keyword">const</span> Eigen::VectorXd &amp;des_ddq, <span class="keyword">const</span> Eigen::MatrixXd &amp;dyn_M, <span class="keyword">const</span> Eigen::MatrixXd &amp;dyn_M_inv, <span class="keyword">const</span> Eigen::VectorXd &amp;dq);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classPriorityTasks.html#a56696b9ae3f9e66780d7660311f1689a">printTaskInfo</a>();</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;};</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructTask_html_a95bd196967c9670c42cbcc4902dd6314"><div class="ttname"><a href="structTask.html#a95bd196967c9670c42cbcc4902dd6314">Task::errX</a></div><div class="ttdeci">Eigen::MatrixXd errX</div><div class="ttdoc">error in task object X</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00038">priority_tasks.h:38</a></div></div>
<div class="ttc" id="astructTask_html_a4a3821db687db14af77c7eeae7d6ba27"><div class="ttname"><a href="structTask.html#a4a3821db687db14af77c7eeae7d6ba27">Task::Jpre</a></div><div class="ttdeci">Eigen::MatrixXd Jpre</div><div class="ttdoc">task jacobian including all the tasks with higher priority</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00033">priority_tasks.h:33</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a7ce471672b0d7f93cc2ca457594e4695"><div class="ttname"><a href="classPriorityTasks.html#a7ce471672b0d7f93cc2ca457594e4695">PriorityTasks::buildPriority</a></div><div class="ttdeci">void buildPriority(const std::vector&lt; std::string &gt; &amp;taskOrder)</div><div class="ttdoc">setup the task priority</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8cpp_source.html#l00035">priority_tasks.cpp:35</a></div></div>
<div class="ttc" id="astructTask_html_a3b9e7af65942b491c076cc22de4f89d9"><div class="ttname"><a href="structTask.html#a3b9e7af65942b491c076cc22de4f89d9">Task::kd</a></div><div class="ttdeci">Eigen::MatrixXd kd</div><div class="ttdoc">velocity gain to compensate error in desired acceleration</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00036">priority_tasks.h:36</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a09f59b5e96992cea32ed2f6979b244c2"><div class="ttname"><a href="classPriorityTasks.html#a09f59b5e96992cea32ed2f6979b244c2">PriorityTasks::out_ddq</a></div><div class="ttdeci">Eigen::VectorXd out_ddq</div><div class="ttdoc">the final ddq calculated to execute tasks</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00058">priority_tasks.h:58</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_ae7d53e762bf5f6481aa8af522430b3a4"><div class="ttname"><a href="classPriorityTasks.html#ae7d53e762bf5f6481aa8af522430b3a4">PriorityTasks::computeAll</a></div><div class="ttdeci">void computeAll(const Eigen::VectorXd &amp;des_delta_q, const Eigen::VectorXd &amp;des_dq, const Eigen::VectorXd &amp;des_ddq, const Eigen::MatrixXd &amp;dyn_M, const Eigen::MatrixXd &amp;dyn_M_inv, const Eigen::VectorXd &amp;dq)</div><div class="ttdoc">compute desired delta_q, dq, ddq to execute the tasks</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8cpp_source.html#l00066">priority_tasks.cpp:66</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_ac999a037ae8fe0b4f77acf3da58587ad"><div class="ttname"><a href="classPriorityTasks.html#ac999a037ae8fe0b4f77acf3da58587ad">PriorityTasks::idList</a></div><div class="ttdeci">std::vector&lt; int &gt; idList</div><div class="ttdoc">task id list NO USE</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00053">priority_tasks.h:53</a></div></div>
<div class="ttc" id="astructTask_html_a3077b191fb5b8d5ace12c7222dae2490"><div class="ttname"><a href="structTask.html#a3077b191fb5b8d5ace12c7222dae2490">Task::N</a></div><div class="ttdeci">Eigen::MatrixXd N</div><div class="ttdoc">null space matrix</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00034">priority_tasks.h:34</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a996beaefca8126343667cb80d5e0798b"><div class="ttname"><a href="classPriorityTasks.html#a996beaefca8126343667cb80d5e0798b">PriorityTasks::childIdList</a></div><div class="ttdeci">std::vector&lt; int &gt; childIdList</div><div class="ttdoc">child task id list NO USE</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00055">priority_tasks.h:55</a></div></div>
<div class="ttc" id="astructTask_html_af16fe27c5fb197cdca58d731444008fc"><div class="ttname"><a href="structTask.html#af16fe27c5fb197cdca58d731444008fc">Task::dxDes</a></div><div class="ttdeci">Eigen::VectorXd dxDes</div><div class="ttdoc">desired dx (x derivative)</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00026">priority_tasks.h:26</a></div></div>
<div class="ttc" id="astructTask_html_ae935da3dcfe3783f5a5b4c1696e940be"><div class="ttname"><a href="structTask.html#ae935da3dcfe3783f5a5b4c1696e940be">Task::derrX</a></div><div class="ttdeci">Eigen::MatrixXd derrX</div><div class="ttdoc">error in X derivative</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00039">priority_tasks.h:39</a></div></div>
<div class="ttc" id="astructTask_html_af030b739b982580e161a18fd9781bc19"><div class="ttname"><a href="structTask.html#af030b739b982580e161a18fd9781bc19">Task::dJ</a></div><div class="ttdeci">Eigen::MatrixXd dJ</div><div class="ttdoc">task jacobian matrix time viriant</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00032">priority_tasks.h:32</a></div></div>
<div class="ttc" id="astructTask_html_aacbb050b3a51a6a40fe7623ceb6240b8"><div class="ttname"><a href="structTask.html#aacbb050b3a51a6a40fe7623ceb6240b8">Task::ddxDes</a></div><div class="ttdeci">Eigen::VectorXd ddxDes</div><div class="ttdoc">desired ddx (dx derivative)</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00027">priority_tasks.h:27</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a035d4efdf1035ca2f94c83721e5b68c7"><div class="ttname"><a href="classPriorityTasks.html#a035d4efdf1035ca2f94c83721e5b68c7">PriorityTasks::startId</a></div><div class="ttdeci">int startId</div><div class="ttdoc">the id of the task with highest priority</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00059">priority_tasks.h:59</a></div></div>
<div class="ttc" id="astructTask_html_aa67cd59077f77263c12c0a63c7d6dd8b"><div class="ttname"><a href="structTask.html#aa67cd59077f77263c12c0a63c7d6dd8b">Task::delta_q</a></div><div class="ttdeci">Eigen::VectorXd delta_q</div><div class="ttdoc">desired delta q to fullfill the task</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00028">priority_tasks.h:28</a></div></div>
<div class="ttc" id="astructTask_html_a2fdbb8808a56ca96cbdec1a337bc5953"><div class="ttname"><a href="structTask.html#a2fdbb8808a56ca96cbdec1a337bc5953">Task::childId</a></div><div class="ttdeci">int childId</div><div class="ttdoc">child task id (lower priority)</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00025">priority_tasks.h:25</a></div></div>
<div class="ttc" id="astructTask_html_a07b71cab2a0637fafa619210411e7e6b"><div class="ttname"><a href="structTask.html#a07b71cab2a0637fafa619210411e7e6b">Task::ddq</a></div><div class="ttdeci">Eigen::VectorXd ddq</div><div class="ttdoc">desired ddq to fullfill the task</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00030">priority_tasks.h:30</a></div></div>
<div class="ttc" id="astructTask_html_ab528b295f73bc2dcae252afe559d1a21"><div class="ttname"><a href="structTask.html#ab528b295f73bc2dcae252afe559d1a21">Task::kp</a></div><div class="ttdeci">Eigen::MatrixXd kp</div><div class="ttdoc">position gain to compensate error in desired acceleration</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00035">priority_tasks.h:35</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a5400e52d0704615006046d3d8f0d028a"><div class="ttname"><a href="classPriorityTasks.html#a5400e52d0704615006046d3d8f0d028a">PriorityTasks::out_dq</a></div><div class="ttdeci">Eigen::VectorXd out_dq</div><div class="ttdoc">the final dq calculated to execute tasks</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00057">priority_tasks.h:57</a></div></div>
<div class="ttc" id="astructTask_html_aff4c90e3b2dec84c5dd2ddfa602c3337"><div class="ttname"><a href="structTask.html#aff4c90e3b2dec84c5dd2ddfa602c3337">Task::dq</a></div><div class="ttdeci">Eigen::VectorXd dq</div><div class="ttdoc">desired dq to fullfill the task</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00029">priority_tasks.h:29</a></div></div>
<div class="ttc" id="astructTask_html_ab6d748e8c9848d62651c6f69959d44e1"><div class="ttname"><a href="structTask.html#ab6d748e8c9848d62651c6f69959d44e1">Task::J</a></div><div class="ttdeci">Eigen::MatrixXd J</div><div class="ttdoc">task jacobian matrix</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00031">priority_tasks.h:31</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html"><div class="ttname"><a href="classPriorityTasks.html">PriorityTasks</a></div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00048">priority_tasks.h:48</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a56696b9ae3f9e66780d7660311f1689a"><div class="ttname"><a href="classPriorityTasks.html#a56696b9ae3f9e66780d7660311f1689a">PriorityTasks::printTaskInfo</a></div><div class="ttdeci">void printTaskInfo()</div><div class="ttdoc">print all the tasks names and their parent task id and child task id</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8cpp_source.html#l00057">priority_tasks.cpp:57</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_adae2ae0a7297db83c589f7b4d26cbe02"><div class="ttname"><a href="classPriorityTasks.html#adae2ae0a7297db83c589f7b4d26cbe02">PriorityTasks::out_delta_q</a></div><div class="ttdeci">Eigen::VectorXd out_delta_q</div><div class="ttdoc">the final delta q calculated to execute tasks</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00056">priority_tasks.h:56</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a91a9d5cd5b5dd9224c8ac75673b96e00"><div class="ttname"><a href="classPriorityTasks.html#a91a9d5cd5b5dd9224c8ac75673b96e00">PriorityTasks::taskLib</a></div><div class="ttdeci">std::vector&lt; Task &gt; taskLib</div><div class="ttdoc">task library, including all the tasks which should be considered</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00051">priority_tasks.h:51</a></div></div>
<div class="ttc" id="astructTask_html_a5590dd70434313e8f8e91444938121aa"><div class="ttname"><a href="structTask.html#a5590dd70434313e8f8e91444938121aa">Task::parentId</a></div><div class="ttdeci">int parentId</div><div class="ttdoc">parent task id (higher priority)</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00024">priority_tasks.h:24</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a3a3ac349eeaae9f95e3f2efc25ece43a"><div class="ttname"><a href="classPriorityTasks.html#a3a3ac349eeaae9f95e3f2efc25ece43a">PriorityTasks::getId</a></div><div class="ttdeci">int getId(const std::string &amp;name)</div><div class="ttdoc">Get the task id with the given name.</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8cpp_source.html#l00016">priority_tasks.cpp:16</a></div></div>
<div class="ttc" id="astructTask_html_a3ab283c32201b1d05812dfb66cc524d9"><div class="ttname"><a href="structTask.html#a3ab283c32201b1d05812dfb66cc524d9">Task::W</a></div><div class="ttdeci">Eigen::DiagonalMatrix&lt; double, -1 &gt; W</div><div class="ttdoc">weighted matrix for pseudo inverse</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00037">priority_tasks.h:37</a></div></div>
<div class="ttc" id="astructTask_html_a26c2d4aaae7802df6c392ef1b4d38ab0"><div class="ttname"><a href="structTask.html#a26c2d4aaae7802df6c392ef1b4d38ab0">Task::Task</a></div><div class="ttdeci">Task(std::string name)</div><div class="ttdoc">Construct a new Task object.</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00046">priority_tasks.h:46</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_a79bdfa4a83aae2f3968b32c005f50423"><div class="ttname"><a href="classPriorityTasks.html#a79bdfa4a83aae2f3968b32c005f50423">PriorityTasks::parentIdList</a></div><div class="ttdeci">std::vector&lt; int &gt; parentIdList</div><div class="ttdoc">parent task id list NO USE</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00054">priority_tasks.h:54</a></div></div>
<div class="ttc" id="astructTask_html_a36551b2c460ad511f54cbf203e309917"><div class="ttname"><a href="structTask.html#a36551b2c460ad511f54cbf203e309917">Task::taskName</a></div><div class="ttdeci">std::string taskName</div><div class="ttdoc">task name</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00022">priority_tasks.h:22</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_ae91eaee730a601061f4f89a24c6e1836"><div class="ttname"><a href="classPriorityTasks.html#ae91eaee730a601061f4f89a24c6e1836">PriorityTasks::nameList</a></div><div class="ttdeci">std::vector&lt; std::string &gt; nameList</div><div class="ttdoc">task names list, one to one in task library</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00052">priority_tasks.h:52</a></div></div>
<div class="ttc" id="astructTask_html"><div class="ttname"><a href="structTask.html">Task</a></div><div class="ttdoc">This class descibes a task in the form: dx = J dq.</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00020">priority_tasks.h:20</a></div></div>
<div class="ttc" id="aclassPriorityTasks_html_ad2ab5b914b5af26a9f6dafa3c77bcd70"><div class="ttname"><a href="classPriorityTasks.html#ad2ab5b914b5af26a9f6dafa3c77bcd70">PriorityTasks::addTask</a></div><div class="ttdeci">void addTask(const char *name)</div><div class="ttdoc">add a task to taskLib</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8cpp_source.html#l00010">priority_tasks.cpp:10</a></div></div>
<div class="ttc" id="astructTask_html_a1bdc8139dd647f9701e9f43e588749d7"><div class="ttname"><a href="structTask.html#a1bdc8139dd647f9701e9f43e588749d7">Task::id</a></div><div class="ttdeci">int id</div><div class="ttdoc">task id</div><div class="ttdef"><b>Definition:</b> <a href="priority__tasks_8h_source.html#l00023">priority_tasks.h:23</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
